﻿using System;
using Teigha.Core;
namespace OdaOperation.Core
{
    /// <summary>
    /// 
    /// </summary>
    public class OdaGlobal
    {
        public static void LoadModel()
        {
            try
            {
                Globals.odrxDynamicLinker().loadModule("TD_DynBlocks", silent: true);
                Globals.odrxDynamicLinker().loadModule("ExDynamicBlocks", silent: true);
                Globals.odrxDynamicLinker().loadModule("ExFieldEvaluator", silent: true);
                Globals.odrxDynamicLinker().loadModule("GripPoints", silent: true);
            }
            catch (Exception ex)
            {
                throw new Exception("oda module 加载失败" + ex.Message);
            }
        }

        internal static void UnLoadModel()
        {
            try
            {
                Globals.odrxDynamicLinker().unloadModule("TD_DynBlocks");
                Globals.odrxDynamicLinker().unloadModule("ExDynamicBlocks");
                Globals.odrxDynamicLinker().unloadModule("ExFieldEvaluator");
                Globals.odrxDynamicLinker().unloadModule("GripPoints");
            }
            catch (Exception)
            {
            }
        }

        public static void LoadAllModel()
        {
            Globals.odrxDynamicLinker().loadModule("ACCAMERA");
            Globals.odrxDynamicLinker().loadModule("AcDbPointCloudObj");
            Globals.odrxDynamicLinker().loadModule("AcDgnLS");
            Globals.odrxDynamicLinker().loadModule("AcGeolocationObj");
            Globals.odrxDynamicLinker().loadModule("AcIdViewObj");
            Globals.odrxDynamicLinker().loadModule("AcModelDocObj");
            Globals.odrxDynamicLinker().loadModule("AcMPolygonObj15");
            Globals.odrxDynamicLinker().loadModule("AcTrace");
            Globals.odrxDynamicLinker().loadModule("AECIIB");
            Globals.odrxDynamicLinker().loadModule("AsdkSmileyDb");
            Globals.odrxDynamicLinker().loadModule("ATEXT");
            Globals.odrxDynamicLinker().loadModule("AutoSurfServices");
            Globals.odrxDynamicLinker().loadModule("DbCommands");
            Globals.odrxDynamicLinker().loadModule("DbConstraints");
            Globals.odrxDynamicLinker().loadModule("DbCryptModule");
            Globals.odrxDynamicLinker().loadModule("DbProperties");
            Globals.odrxDynamicLinker().loadModule("DbRuntimeIO");
            Globals.odrxDynamicLinker().loadModule("DgGeoDataEx");
            Globals.odrxDynamicLinker().loadModule("DgPlotStyleServices");
            Globals.odrxDynamicLinker().loadModule("DwfxSignatureHandlerWin");
            Globals.odrxDynamicLinker().loadModule("DwfxSignatureHandler");
            Globals.odrxDynamicLinker().loadModule("DwgConstraints");
            Globals.odrxDynamicLinker().loadModule("ExampleRevisionControl");
            Globals.odrxDynamicLinker().loadModule("ExCommands");
            Globals.odrxDynamicLinker().loadModule("ExCustObjs");
            Globals.odrxDynamicLinker().loadModule("ExDeepCloning");
            Globals.odrxDynamicLinker().loadModule("ExDimAssoc");
            Globals.odrxDynamicLinker().loadModule("ExDwgCompare");
            Globals.odrxDynamicLinker().loadModule("ExDwgIfc");
            Globals.odrxDynamicLinker().loadModule("ExDwgStep");
            Globals.odrxDynamicLinker().loadModule("ExDynamicBlocks");
            Globals.odrxDynamicLinker().loadModule("ExEntityIntersection");
            Globals.odrxDynamicLinker().loadModule("ExEvalWatchers");
            Globals.odrxDynamicLinker().loadModule("ExFieldEvaluator");
            Globals.odrxDynamicLinker().loadModule("ExFMBody");
            Globals.odrxDynamicLinker().loadModule("ExTimeProviderWin");
            Globals.odrxDynamicLinker().loadModule("Ex_Alloc");
            Globals.odrxDynamicLinker().loadModule("GripPoints");
            Globals.odrxDynamicLinker().loadModule("ISM");
            Globals.odrxDynamicLinker().loadModule("ModelerCommands");
            Globals.odrxDynamicLinker().loadModule("ModelerGeometry");
            Globals.odrxDynamicLinker().loadModule("OBJToolkit");
            Globals.odrxDynamicLinker().loadModule("OdCurveFunctions");
            Globals.odrxDynamicLinker().loadModule("OdDbGeoMapPE");
            Globals.odrxDynamicLinker().loadModule("OdDbPartialViewing");
            Globals.odrxDynamicLinker().loadModule("OdGeoData");
            Globals.odrxDynamicLinker().loadModule("OdOleItemHandler");
            Globals.odrxDynamicLinker().loadModule("OdOleSsItemHandler");
            Globals.odrxDynamicLinker().loadModule("OpenCadTx");
            Globals.odrxDynamicLinker().loadModule("OverrulingSample");
            Globals.odrxDynamicLinker().loadModule("PDFiumModule");
            Globals.odrxDynamicLinker().loadModule("PlotSettingsValidator");
            Globals.odrxDynamicLinker().loadModule("PlotStyleServices");
            Globals.odrxDynamicLinker().loadModule("PointCloudHost");
            Globals.odrxDynamicLinker().loadModule("RasterProcessor");
            Globals.odrxDynamicLinker().loadModule("RecomputeDimBlock");
            Globals.odrxDynamicLinker().loadModule("RText");
            Globals.odrxDynamicLinker().loadModule("RxCommonDataAccess");
            Globals.odrxDynamicLinker().loadModule("RxPdfToRasterServices");
            Globals.odrxDynamicLinker().loadModule("RxProperties");
            Globals.odrxDynamicLinker().loadModule("RxRasterServices");
            Globals.odrxDynamicLinker().loadModule("SCENEOE");
            Globals.odrxDynamicLinker().loadModule("SpaModeler");
            Globals.odrxDynamicLinker().loadModule("STLImport");
            Globals.odrxDynamicLinker().loadModule("TAcisDb");
            Globals.odrxDynamicLinker().loadModule("TDwfDb");
            Globals.odrxDynamicLinker().loadModule("TD_3DSolidHistory");
            Globals.odrxDynamicLinker().loadModule("TD_AssetXMLParser");
            Globals.odrxDynamicLinker().loadModule("TD_Ave");
            Globals.odrxDynamicLinker().loadModule("TD_ColladaExport");
            Globals.odrxDynamicLinker().loadModule("TD_ColladaImport");
            Globals.odrxDynamicLinker().loadModule("TD_DbDataLinkWin");
            Globals.odrxDynamicLinker().loadModule("TD_DbEntities");
            Globals.odrxDynamicLinker().loadModule("TD_DbIO");
            Globals.odrxDynamicLinker().loadModule("TD_DbJoinEntityPE");
            Globals.odrxDynamicLinker().loadModule("TD_DgnExport");
            Globals.odrxDynamicLinker().loadModule("TD_DgnImport");
            Globals.odrxDynamicLinker().loadModule("TD_DgnUnderlay");
            Globals.odrxDynamicLinker().loadModule("TD_Dwf7Export");
            Globals.odrxDynamicLinker().loadModule("TD_Dwf7Import");
            Globals.odrxDynamicLinker().loadModule("TD_DwfUnderlay");
            Globals.odrxDynamicLinker().loadModule("TD_FtFontEngine");
            Globals.odrxDynamicLinker().loadModule("TD_GsBackground");
            Globals.odrxDynamicLinker().loadModule("TD_Iesna");
            Globals.odrxDynamicLinker().loadModule("TD_PdfExport");
            Globals.odrxDynamicLinker().loadModule("TD_PdfImport");
            Globals.odrxDynamicLinker().loadModule("TD_RasterExport");
            Globals.odrxDynamicLinker().loadModule("TD_Sm");
            Globals.odrxDynamicLinker().loadModule("TD_STLExport");
            Globals.odrxDynamicLinker().loadModule("TD_SvgExport");
            Globals.odrxDynamicLinker().loadModule("TD_TfCore");
            Globals.odrxDynamicLinker().loadModule("TD_Tf");
            Globals.odrxDynamicLinker().loadModule("TD_ThreejsJSONExport");
            Globals.odrxDynamicLinker().loadModule("TG_Db");
            Globals.odrxDynamicLinker().loadModule("TG_Dgn7IO");
            Globals.odrxDynamicLinker().loadModule("TG_DwgDb");
            Globals.odrxDynamicLinker().loadModule("TG_ModelerGeometry");
            Globals.odrxDynamicLinker().loadModule("ThreadPool");
            Globals.odrxDynamicLinker().loadModule("TRseDb");
            Globals.odrxDynamicLinker().loadModule("TrXmlVec");
            Globals.odrxDynamicLinker().loadModule("WipeOut");
        }
    }
}
